package com.hb.repository;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hb.repository.entity.SysUser;
import com.hb.repository.mapper.SysUserMapper;
import com.hb.vo.request.UserRequestVO;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @description:
 * @projectName: zhb-frame-build
 * @author: zhouhaizhi
 * @createTime: 2021/8/11 17:50
 * @version:1.0
 */
@Repository
public class SysUserRepository extends ServiceImpl<SysUserMapper, SysUser> {

    /**
     * @描述 分页查询用户信息
     * @创建人 zhouhaizhi
     * @创建时间 2021/8/16 15:05
     * @参数
     * @返回值
     * @修改人和其它信息
     */
    public IPage<SysUser> pageInfo(IPage page, UserRequestVO userRequestVO) {
        LambdaQueryWrapper<SysUser> wrapper = Wrappers.lambdaQuery();
        wrapper.like(StringUtils.isNotBlank(userRequestVO.getName()), SysUser::getName, userRequestVO.getName());
        return baseMapper.selectPage(page, wrapper);
    }

    /**
     * @描述 获取所有用户信息
     * @创建人 zhouhaizhi
     * @创建时间 2021/8/16 15:25
     * @参数
     * @返回值
     * @修改人和其它信息
     */
    public List<SysUser> getUserAll() {
        return baseMapper.selectList(Wrappers.lambdaQuery());
    }

    /**
     * @描述 根据登录名查询用户
     * @创建人 zhouhaizhi
     * @创建时间 2021/8/27 14:32
     * @参数
     * @返回值
     * @修改人和其它信息
     */
    public SysUser getUserByLoginName(String loginName) {
        LambdaQueryWrapper<SysUser> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(SysUser::getLoginName, loginName);
        wrapper.last("limit 1");

        return getOne(wrapper);
    }
}
